import { IPSAppCounterRef } from '../app/control/ipsapp-counter-ref';
import { IPSAppViewEngine } from '../app/view/ipsapp-view-engine';
import { IPSAppViewLogic } from '../app/view/ipsapp-view-logic';
import { IPSAppViewRef } from '../app/view/ipsapp-view-ref';
import { IPSAppViewUIAction } from '../app/view/ipsapp-view-uiaction';
import { IPSControl } from './ipscontrol';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * @export
 * @interface IPSControlContainer
 */
export interface IPSControlContainer extends IPSModelObject {
  /**
   * 计数器引用集合
   *
   * @type {IPSAppCounterRef[]}
   */
  getPSAppCounterRefs(): IPSAppCounterRef[] | null;

  findPSAppCounterRef(objKey: any): IPSAppCounterRef | null;

  /**
   * 视图界面引擎集合
   *
   * @type {IPSAppViewEngine[]}
   */
  getPSAppViewEngines(): IPSAppViewEngine[] | null;

  findPSAppViewEngine(objKey: any): IPSAppViewEngine | null;

  /**
   * 视图逻辑集合
   *
   * @type {IPSAppViewLogic[]}
   */
  getPSAppViewLogics(): IPSAppViewLogic[] | null;

  findPSAppViewLogic(objKey: any): IPSAppViewLogic | null;

  /**
   * 视图对象引用
   *
   * @type {IPSAppViewRef[]}
   */
  getPSAppViewRefs(): IPSAppViewRef[] | null;

  findPSAppViewRef(objKey: any): IPSAppViewRef | null;

  /**
   * 视图界面行为集合
   *
   * @type {IPSAppViewUIAction[]}
   */
  getPSAppViewUIActions(): IPSAppViewUIAction[] | null;

  findPSAppViewUIAction(objKey: any): IPSAppViewUIAction | null;

  /**
   * 根部件集合
   *
   * @type {IPSControl[]}
   */
  getPSControls(): IPSControl[] | null;

  findPSControl(objKey: any): IPSControl | null;
}
